package com.xuanyuan.material

import android.os.Bundle
import com.google.android.material.shape.AbsoluteCornerSize
import com.google.android.material.shape.CornerFamily
import com.google.android.material.shape.RelativeCornerSize
import com.google.android.material.shape.ShapeAppearanceModel
import com.xuanyuan.baselibaray.BaseActivity
import com.xuanyuan.material.databinding.ActivityShapeableImageviewBinding


/**
 * FileName: ShapeableImageView
 * @author ken.luo
 * Date: 2022/6/9 15:06
 * Description: 继承自ImageView，可以为image添加描边大小、颜色，以及圆角、裁切等，
 * History:
 * 创建者 : ken.luo
 * <author>     <time>     <version>      <desc>
 * 作者姓名      修改时间      版本号          描述
</desc></version></time></author> */

class ShapeableImageViewActivity : BaseActivity<ActivityShapeableImageviewBinding>() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setImage()
    }

    /**
     * 1.setTopLeft表示处理左上角，其他同理。
     * 2.cornerSize表示设置的大小，有RelativeCornerSize和AbsoluteCornerSize，RelativeCornerSize构造方法接收一个百分比，范围0-1；
     * AbsoluteCornerSize构造方法接收一个具体数值，这个数值就是圆角的数值。
     * 3.CornerFamily，它表示处理的方式，有ROUNDED和CUT两种，ROUNDED是圆角，CUT是直接将圆角部分裁切掉。
     * setAllCornerSizes(ShapeAppearanceModel.PILL)可以直接实现圆形效果。
     */
    private fun setImage() {
        mBinding.simageView.shapeAppearanceModel = ShapeAppearanceModel.builder()
            .setAllCorners(CornerFamily.ROUNDED, 20f)// 设置圆角
            .setTopLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3f))//设置指定方向圆角
            .setTopRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3f))//设置指定方向圆角
            .setBottomRightCorner(CornerFamily.CUT, RelativeCornerSize(0.3f))//设置指定方向圆角
            .setBottomLeftCorner(CornerFamily.CUT, RelativeCornerSize(0.3f))//设置指定方向圆角
            .setAllCornerSizes(ShapeAppearanceModel.PILL)
            .setTopLeftCornerSize(20f)//设置指定方向圆角大小
            .setTopRightCornerSize(RelativeCornerSize(0.5f))//设置指定方向圆角大小
            .setBottomLeftCornerSize(10f)//设置指定方向圆角大小
            .setBottomRightCornerSize(AbsoluteCornerSize(30f))//设置指定方向圆角大小
            .build()
    }

    override fun initLayout(): Int {
        return R.layout.activity_shapeable_imageview
    }

}


